import pandas as pd

def split_and_save(df: pd.DataFrame, 
                  output_dir: str = "output",
                  prefix: str = "part") -> None:
    """
    将DataFrame等分3份存储到指定目录
    
    参数:
        df: 要分割的DataFrame
        output_dir: 输出目录路径（默认output）
        prefix: 文件名前缀（默认part）
    
    特性:
        1. 自动处理余数分配[1](@ref)
        2. 直接使用字符串路径拼接
        3. 依赖目录已存在（需手动创建output_dir）
    """
    total = len(df)
    base, rem = divmod(total, 3)
    
    # 生成分片索引（网页1的iloc分割法）
    slices = [
        (0, base + rem),
        (base + rem, base*2 + rem),
        (base*2 + rem, total)
    ]
    
    # 直接存储CSV文件（网页2的批量存储逻辑）
    for i, (s, e) in enumerate(slices, 1):
        df.iloc[s:e].to_csv(
            f"{output_dir}/{prefix}_{i}.csv", 
            index=False
        )

def load_and_merge(input_dir: str = "input",
                  prefix: str = "part") -> pd.DataFrame:
    """
    合并指定目录的分片文件
    
    参数:
        input_dir: 输入目录路径（默认input）
        prefix: 文件名前缀（默认part）
    
    返回:
        合并后的完整DataFrame
    
    特性:
        1. 预设固定分片数[2](@ref)
        2. 直接构造文件路径
    """
    # 生成固定文件名列表
    files = [f"{input_dir}/{prefix}_{i}.csv" for i in [1,2,3,4,5]]
    
    # 合并数据（网页2的concat方法）
    return pd.concat(
        (pd.read_csv(f) for f in files),
        ignore_index=True
    )

